package com.ruoyi.system.domain;

import java.math.BigDecimal;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 会员等级折扣管理（存储会员等级、折扣规则及特殊规则）对象 member_level_discount
 *
 * @author ruoyi
 * @date 2025-05-14
 */
@ApiModel("会员等级折扣管理")
@Data
public class MemberLevelDiscount extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /** 会员等级唯一标识符（自增主键） */
    @ApiModelProperty("会员等级唯一标识符（自增主键）")
    private Long id;

    /** 会员等级名称（如"黄金会员"、"普通会员"） */
    @Excel(name = "会员等级名称")
    @ApiModelProperty("会员等级名称")
    private String levelName;

    /** 会员权益描述（支持多行文本，如"专属客服"、"生日礼包"） */
    @Excel(name = "会员权益描述")
    @ApiModelProperty("会员权益描述")
    private String levelBenefits;

    /** 升级积分（达到该积分可升级至本等级） */
    @Excel(name = "升级积分", readConverterExp = "达=到该积分可升级至本等级")
    @ApiModelProperty("升级积分（达到该积分可升级至本等级）")
    private Long upgradePoints;

    /** 当前等级会员人数（统计字段，自动更新或手动维护） */
    @Excel(name = "当前等级会员人数", readConverterExp = "统=计字段，自动更新或手动维护")
    @ApiModelProperty("当前等级会员人数（统计字段，自动更新或手动维护）")
    private Long memberCount;

    /** 是否是默认等级（TRUE: 是，FALSE: 否） */
    @Excel(name = "是否是默认等级", readConverterExp = "T=RUE:,是=，FALSE:,否=")
    @ApiModelProperty("是否是默认等级（TRUE: 是，FALSE: 否）")
    private Integer isDefaultLevel;

    /** 等级状态（ACTIVE: 启用，INACTIVE: 停用，DELETED: 已删除） */
    @Excel(name = "等级状态", readConverterExp = "A=CTIVE:,启=用，INACTIVE:,停=用，DELETED:,已=删除")
    @ApiModelProperty("等级状态（ACTIVE: 启用，INACTIVE: 停用，DELETED: 已删除）")
    private String status;

    /** 商品折扣（百分比，如80表示8折，100表示无折扣） */
    @Excel(name = "商品折扣", readConverterExp = "百=分比，如80表示8折，100表示无折扣")
    @ApiModelProperty("商品折扣（百分比，如80表示8折，100表示无折扣）")
    private BigDecimal productDiscount;

    /** 桌台费折扣（百分比） */
    @Excel(name = "桌台费折扣", readConverterExp = "百=分比")
    @ApiModelProperty("桌台费折扣（百分比）")
    private BigDecimal tableFeeDiscount;

    /** 桌台服务费折扣（百分比） */
    @Excel(name = "桌台服务费折扣", readConverterExp = "百=分比")
    @ApiModelProperty("桌台服务费折扣（百分比）")
    private BigDecimal tableServiceFeeDiscount;

    /** 设备服务费折扣（百分比） */
    @Excel(name = "设备服务费折扣", readConverterExp = "百=分比")
    @ApiModelProperty("设备服务费折扣（百分比）")
    private BigDecimal deviceServiceFeeDiscount;

    /** 员工服务费折扣（百分比） */
    @Excel(name = "员工服务费折扣", readConverterExp = "百=分比")
    @ApiModelProperty("员工服务费折扣（百分比）")
    private BigDecimal staffServiceFeeDiscount;

    /** 桌台超时费折扣（百分比） */
    @Excel(name = "桌台超时费折扣", readConverterExp = "百=分比")
    @ApiModelProperty("桌台超时费折扣（百分比）")
    private BigDecimal tableOvertimeFeeDiscount;

    /** 桌台时长卡折扣（百分比） */
    @Excel(name = "桌台时长卡折扣", readConverterExp = "百=分比")
    @ApiModelProperty("桌台时长卡折扣（百分比）")
    private BigDecimal tableTimeCardDiscount;

    /** 桌台次卡折扣（百分比） */
    @Excel(name = "桌台次卡折扣", readConverterExp = "百=分比")
    @ApiModelProperty("桌台次卡折扣（百分比）")
    private BigDecimal tableCountCardDiscount;

    /** 商品次卡折扣（百分比） */
    @Excel(name = "商品次卡折扣", readConverterExp = "百=分比")
    @ApiModelProperty("商品次卡折扣（百分比）")
    private BigDecimal productCountCardDiscount;

    /** 储值卡余额小于消费金额不享受会员折扣 */
    @Excel(name = "储值卡余额小于消费金额不享受会员折扣")
    @ApiModelProperty("储值卡余额小于消费金额不享受会员折扣")
    private Integer noDiscountWhenLowBalance;

    /** 不参与会员积分 */
    @Excel(name = "不参与会员积分")
    @ApiModelProperty("不参与会员积分")
    private Integer excludeFromPoints;

    /** 最后操作人（记录修改等级配置的员工） */
    @Excel(name = "最后操作人", readConverterExp = "记=录修改等级配置的员工")
    @ApiModelProperty("最后操作人")
    private String operator;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}